import {AbstractControl, ValidatorFn} from '@angular/forms';

/**
 * 自定义验证规则：正则匹配，当表单项允许空，而且内容也为空的时候，正则验证无效，自动跳过
 * */
export function customizeRegexValidator(reg: RegExp, validators: { [key: string]: string }, key: string): ValidatorFn {
  return (control: AbstractControl): { [key: string]: any } => {
    if (!validators.hasOwnProperty('required') && control.value === null || typeof control.value === 'undefined' || control.value === '') {
      return null;
    } else {
      const ret = reg.test(control.value);
      return ret ? null : {[key]: true};
    }
  };
}
